//数组扩展  新增特性
//Array.from            Array.of       copyWithin
//find\findIndex        fill           entries\keys\values
//includes


{ //生成数组
  //把一组数据变量  转化生成数组
  let arr = Array.of(3,4,7,9,11);
  console.log('arr=',arr);
  //返回空数组
  let empty=Array.of();
  console.log('empty',empty);
}

{
  let p=document.querySelectorAll('p');
  let pArr=Array.from(p);           //将类数组，转为真正的数组~！
  pArr.forEach(function(item){
    console.log(item.textContent);  //原生js获取dom节点文本内容的属性~！
  });
  //类似于map映射的用法~！（第二个参数是一个函数~！）
  console.log(Array.from([1,3,5],function(item){return item*2}));
}

{
  console.log('fill-7',[1,'a',undefined].fill(7));              //将数组的每个元素都变成7
  console.log('fill,pos',['a','b','c'].fill(7,1,3));            //将数组变成['a',7,7],从位置1开始的3个位置替换成7
}

{
  for(let index of ['1','c','ks'].keys()){                     //keys  0 1 2
    console.log('keys',index);
  }
  for(let value of ['1','c','ks'].values()){                   //values//这个需要兼容，否则浏览器不认识哦
    console.log('values',value);
  }
  for(let [index,value] of ['1','c','ks'].entries()){          //entries //这个不存在兼容问题（）
    console.log('values',index,value);
  }
}

{ //将数组中某位置的值复制到其他位置
  console.log([1,2,3,4,5].copyWithin(0,3,4));   //[4,2,3,4,5]
}

{
  console.log([1,2,3,4,5,6].find(function(item){return item>3}));               //查找数组中某个元素大于三  返回4
  console.log([1,2,3,4,5,6].findIndex(function(item){return item>3}));          //                      返回3
}

{
  //比 find 更省事更方便                                 ------------------------常用  --------------
  console.log('number',[1,2,NaN].includes(1));                                  //是否包括 1
  console.log('number',[1,2,NaN].includes(NaN));                                //是否包括 NaN
}
